#include <iostream>
#include <sys/types.h>
#include <unistd.h>

using std::cout;
using std::endl;

// // 创建子进程,让两个进程同一条语句,打印资格pid和ppid
// int main()
// {
//     cout << "我是父进程,我的pid: " << getpid() << endl;
//     pid_t ret = fork();
//     cout << ret << "  pid: " << getpid() << "  ppid: " << getppid() << endl;
//     return 0;
// }

// // 创建子进程,让父子进程分别执行不同的任务
// int main()
// {
//     pid_t ret = fork();
//     if (ret < 0)
//     {
//         perror("fork error!");
//         exit(1);
//     }
//     else if (ret == 0)
//     {
//         // 子进程
//         while (true)
//         {
//             cout << "我是子进程, 我的pid是: " << getpid() << " 我的ppid是: " << getppid() << endl;
//             sleep(1);
//         }
//     }

//     // 父进程
//     while (true)
//     {
//         cout << "我是父进程, 我的pid是: " << getpid() << " 我的ppid是: " << getppid() << endl;
//         sleep(1);
//     }
//     return 0;
// }

// int main()
// {
//     pid_t ret = fork();
//     if (ret < 0)
//     {
//         perror("fork error");
//         exit(1);
//     }
//     else if (ret == 0)
//     {
//         // 子进程
//         int count = 0;
//         while (count < 5)
//         {
//             cout << "I am child, my pid:" << getpid() << " ppid:" << getppid() << endl;
//             count++;
//             sleep(1);
//         }
//     }
//     else
//     {
//         // 父进程
//         int Count = 0;
//         while (Count < 10)
//         {
//             cout << "I am parent, my pid:" << getpid() << " ppid:" << getppid() << endl;
//             Count++;
//             sleep(1);
//         }
//     }

//     cout << "****************" << endl;
//     return 0;
// }



// // 父进程退出后,子进程会被1号进程领养
// int main()
// {
//     pid_t ret = fork();
//     if (ret < 0)
//     {
//         perror("fork error");
//         exit(1);
//     }
//     else if (ret == 0)
//     {
//         // 子进程
//         while (true)
//         {
//             cout << "I am child, my pid:" << getpid() << " ppid:" << getppid() << endl;
//             sleep(1);
//         }
//     }
//     else
//     {
//         // 父进程
//         int Count = 0;
//         while (Count < 5)
//         {
//             cout << "I am parent, my pid:" << getpid() << " ppid:" << getppid() << endl;
//             Count++;
//             sleep(1);
//         }
//     }
//     return 0;
// }



// 写个代码来设置进程的优先级
int main()
{
    while (true)
    {
        cout << getpid() << endl;
        sleep(1);
    }
    return 0;
}
